// 将多维菜单转换为最末级的一维菜单集合
export const menuTransform = (data = []) => {
  let arr = [];
  returnData(data, (item) => arr.push(item));
  return arr;
};

/**
 * 递归
 * @param {Array} data
 * @param {Function} callback
 * @param {Object} obj
 */
export const returnData = (data = [], callback, obj = {}) => {
  const key = obj?.key || 'children'; // 使用key判断是否再次进入递归的条件
  data.forEach((item) => {
    if (item[key] && item[key].length > 0) {
      obj?.callback && obj?.callback(item); // 符合条件的函数 在obj中
      returnData(item[key], callback, obj);
    } else {
      callback && callback(item); // 不符合条件的函数
    }
  });
};
